package v2;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

/**
 * 注意如果是bean对象那么不能在单例对象中存放变量
 */
public class DecorationPackageController  {
    public  String getMatterList(BigDecimal area, Integer level){
        // 装修的清单
        List<Matter> matters=new ArrayList<>();
        BigDecimal price=BigDecimal.ZERO;
        // 一级装修材料
        if (1== level){
            LevelOneCeiling levelOneCeiling=new LevelOneCeiling();
            DuluxCoat duluxCoat=new DuluxCoat();
            DerFloor derFloor=new DerFloor();
            matters.add(levelOneCeiling);
            matters.add(derFloor);
            matters.add(duluxCoat);
            price=price.add(area.multiply(new BigDecimal("0.2")).multiply(levelOneCeiling.price())
                    .add(area.multiply(new BigDecimal("1.4").multiply(duluxCoat.price()))
                            .add(area.multiply(derFloor.price()))));
        }
        else if(level==2){
            // 2 级不同的装修方案
        }else if(level==3){
            // 3 级不同的装修方案
        }

        StringBuilder detail = new StringBuilder("\r\n--------------------" +
                "-----------------------------------\r\n" +

                "装修清单" + "\r\n" +

                        "套餐等级：" + level + "\r\n" +

                        "套餐价格：" + price.setScale(2, BigDecimal.ROUND_HALF_UP) +

                        " 元\r\n" +

                        "房屋⾯积：" + area.doubleValue() + " 平⽶\r\n" +

                        "材料清单：\r\n");
        for (Matter matter: matters) {

            detail.append(matter.scene().getDesc()).append("：").append(matter.brand()).append(

                    "、").append(matter.model()).append("、平⽶价格：").append(matter.price()).append(" 元。\n");
        }
        return detail.toString();
    }
}
